home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.5 / pascal / pcq-programme / game / game.i < prev    next >
Text File  |  1995-04-19  |  4KB  |  100 lines

  1. {
  2.     Game.i
  3.  
  4.       Die hier folgenden Routinen sind alle für die Benutzung
  5.       in den Spielen gedacht.
  6.       Nähere Informationen: siehe Dokumentation.
  7. }
  8.  
  9. { - Copyright und Revisionsnummer für die verwendeten Routinen -------- }
  10.  
  11. CONST
  12.     CopyRight : string = "19. Juni 1992 , Jörg Wach ";
  13.     RevNummer : string = "Version V1.00";
  14.  
  15.  
  16. { - Die verwendeten Typen, Constanten und Variablen. ------------------ }
  17.  
  18. TYPE
  19.         ObjektDef = record  { die Definition meiner Spielobjekte }
  20.             Ox      :   short;  { x-Position linke obere Ecke }
  21.             Oy      :   short;  { y-Position linke obere Ecke }
  22.             Sizex   :   short;  { x-size }
  23.             Sizey   :   short;  { y-size }
  24.             Speedx  :   short;  { x-Geschwindigkeit }
  25.             Speedy  :   short;  { y-Geschwindigkeit }
  26.             Phase1  :   short;  { Bewegungsphasenzähler1 }
  27.             Phase2  :   short;  { Bewegungsphasenzähler2 }
  28.             typ     :   short;  { Objekttyp }
  29.         end;
  30.  
  31. CONST
  32.         Objektsize : integer = sizeof(ObjektDef); { Größe eines Objektes }
  33.  
  34. VAR
  35.         Objekt     : array[0..255] of ObjektDef;  { Max. Anzahl der Objekte }
  36.         Picture    : array[1..20] of Image;  { Max. 20 Bilder }
  37.  
  38.         blitctrl        : short;    { Globale Variable für Blitterergebnis }
  39.         BlittiSpeicher  : Address;  { Wird benötigt, weil überschneidungen
  40.                                       bei der Bearbeitung auftreten !!! }
  41.         MyBitMap        : Address;  { Adresse der BitMap }
  42.         MyRPort    : RastPortPtr;
  43. { --------------------------------------------------------------------- }
  44.  
  45.  
  46. Procedure GraphCollision( x1, y1, xsize, ysize : short);
  47. { Testet einen BitMapBereich auf vorhandene Punkte. xsize und ysize
  48.   bestimmen das Ausmaß des zu testenden Bereiches. }
  49.     External;
  50.  
  51. Function CollObjekt(von, bis, x1, y1, x2, y2 : short) : short;
  52. { Die Funktion ermittelt, welches Objekt in dem Rechteck x1, y1, x2, y2
  53.   Kollidiert ist. Hierbei kann ein von / bis Bereich für die Objekt-
  54.   untersuchung angegeben werden (0 - 255 ).
  55.   Wird als Von-Wert -1 angegeben, so werden alle Objekte untersucht und
  56.   die erste Objektnummer, die zur Kollision führte, zurück gegeben.
  57.   Ist der Rückgabewert -1, so gab es eine Kolision mit einem nicht
  58.   definierten Objekt bzw. das Objekt wurde nicht gefunden.
  59. }
  60.     External;
  61.  
  62. Procedure DrawObjekt( VonNr, BisNr : short; MyPlanes, NotMyPlanes : byte );
  63. {   Zeichnet die mit VonNr bis BisNr gekennzeichnete Objekte unter
  64.     Beachtung der vorgegebenen Masken }
  65.     External;
  66.  
  67. Procedure UnDrawObjekt( VonNr, BisNr : short );
  68. {   Löscht die mit VonNr bis BisNr gekennzeichnete Objekte. }
  69.     External;
  70.  
  71. Function GetChar() : byte;
  72. { Liefert den RAW-Wert einer Taste zurück.
  73.   Ein paar Tastencodes:     AMIGA-links   : $33
  74.                             AMIGA-rechts  : $31
  75.                             DEL           : $73
  76.                             Cursor hoch   : 103
  77.                             Cursor runter : 101
  78.                             Cursor rechts :  99
  79.                             Cursor links  :  97
  80. }
  81.     External;
  82.  
  83. Function GetJoy2(): byte;
  84. { Gibt folgende Werte zurück:
  85.     0 - Joystick wurde nicht berührt
  86.     1 - Joystick nach rechts
  87.     2 - Joystick nach links
  88.     4 - Joystick nach hinten
  89.     8 - Joystick nach vorne
  90.    16 - Feuertaste gedrückt
  91. }
  92.     External;
  93.  
  94. Function ChipCopy( Source : Address; Size : integer) : Address;
  95. { Allokiert ChipMem in der Größe Size und kopiert die Daten von
  96.   der Addresse Source dort hinein. Zurückgegeben wird die ChipMem
  97.   Adresse.
  98. }
  99.     External;
  100.